diff --git a/common/cmd_flash.c b/common/cmd_flash.c
index db5dec9..9bd8074 100644
--- a/common/cmd_flash.c
+++ b/common/cmd_flash.c
@@ -360,7 +360,7 @@
 				addr_last = addr_first + part->size - 1;
 
 				printf ("Erase Flash Parition %s, "
-						"bank %d, 0x%08lx - 0x%08lx ",
+						"bank %ld, 0x%08lx - 0x%08lx ",
 						argv[1], bank, addr_first,
 						addr_last);
 
@@ -566,7 +566,7 @@
 				addr_last = addr_first + part->size - 1;
 
 				printf ("%sProtect Flash Parition %s, "
-						"bank %d, 0x%08lx - 0x%08lx\n",
+						"bank %ld, 0x%08lx - 0x%08lx\n",
 						p ? "" : "Un", argv[1],
 						bank, addr_first, addr_last);
 
diff --git a/common/cmd_jffs2.c b/common/cmd_jffs2.c
index 1b67e73..b4698be 100644
--- a/common/cmd_jffs2.c
+++ b/common/cmd_jffs2.c
@@ -241,13 +241,13 @@
 #define SIZE_KB ((u32)1024)
 
 	if ((size % SIZE_GB) == 0)
-		sprintf(buf, "%lug", size/SIZE_GB);
+		sprintf(buf, "%ug", size/SIZE_GB);
 	else if ((size % SIZE_MB) == 0)
-		sprintf(buf, "%lum", size/SIZE_MB);
+		sprintf(buf, "%um", size/SIZE_MB);
 	else if (size % SIZE_KB == 0)
-		sprintf(buf, "%luk", size/SIZE_KB);
+		sprintf(buf, "%uk", size/SIZE_KB);
 	else
-		sprintf(buf, "%lu", size);
+		sprintf(buf, "%u", size);
 }
 
 /**
@@ -416,7 +416,7 @@
 		part->size = id->size - part->offset;
 
 	if (part->offset > id->size) {
-		printf("%s: offset %08lx beyond flash size %08lx\n",
+		printf("%s: offset %08x beyond flash size %08x\n",
 				id->mtd_id, part->offset, id->size);
 		return 1;
 	}
@@ -1288,7 +1288,7 @@
 	if (current_dev) {
 		part = jffs2_part_info(current_dev, current_partnum);
 		if (part) {
-			printf("\nactive partition: %s%d,%d - (%s) 0x%08lx @ 0x%08lx\n",
+			printf("\nactive partition: %s%d,%d - (%s) 0x%08x @ 0x%08x\n",
 					MTD_DEV_TYPE(current_dev->id->type),
 					current_dev->id->num, current_partnum,
 					part->name, part->size, part->offset);
diff --git a/cpu/mpc83xx/ecc.c b/cpu/mpc83xx/ecc.c
index 6f13094..5137ab6 100644
--- a/cpu/mpc83xx/ecc.c
+++ b/cpu/mpc83xx/ecc.c
@@ -45,7 +45,7 @@
 	       (ddr->err_disable & ECC_ERROR_DISABLE_MSED) ? 1 : 0);
 
 	/* Error injection */
-	printf("Memory Data Path Error Injection Mask High/Low: %08lx %08lx\n",
+	printf("Memory Data Path Error Injection Mask High/Low: %08x %08x\n",
 	       ddr->data_err_inject_hi, ddr->data_err_inject_lo);
 
 	printf("Memory Data Path Error Injection Mask ECC:\n");
@@ -75,8 +75,8 @@
 	       (ddr->err_detect & ECC_ERROR_DETECT_MSE) ? 1 : 0);
 
 	/* Capture data */
-	printf("Memory Error Address Capture: 0x%08lx\n", ddr->capture_address);
-	printf("Memory Data Path Read Capture High/Low: %08lx %08lx\n",
+	printf("Memory Error Address Capture: 0x%08x\n", ddr->capture_address);
+	printf("Memory Data Path Read Capture High/Low: %08x %08x\n",
 	       ddr->capture_data_hi, ddr->capture_data_lo);
 	printf("Memory Data Path Read Capture ECC: 0x%02x\n\n",
 	       ddr->capture_ecc & CAPTURE_ECC_ECE);
diff --git a/cpu/mpc83xx/speed.c b/cpu/mpc83xx/speed.c
index 16145dd..76c569d 100644
--- a/cpu/mpc83xx/speed.c
+++ b/cpu/mpc83xx/speed.c
@@ -508,7 +508,7 @@
 #endif
 	printf("  Local Bus Controller:%4d MHz\n", gd->lbiu_clk / 1000000);
 	printf("  Local Bus:           %4d MHz\n", gd->lclk_clk / 1000000);
-	printf("  DDR:                 %4d MHz\n", gd->mem_clk / 1000000);
+	printf("  DDR:                 %4ld MHz\n", gd->mem_clk / 1000000);
 #if defined(CONFIG_MPC8360)
 	printf("  DDR Secondary:       %4d MHz\n", gd->mem_sec_clk / 1000000);
 #endif
diff --git a/drivers/block/fsl_sata.c b/drivers/block/fsl_sata.c
index d441a30..55f593a 100644
--- a/drivers/block/fsl_sata.c
+++ b/drivers/block/fsl_sata.c
@@ -510,7 +510,7 @@
 	int rc;
 
 	if (tag > SATA_HC_MAX_CMD || tag < 0) {
-		printf("tag is out of range, tag=\n\r", tag);
+		printf("tag is out of range, tag=%d\n\r", tag);
 		return -1;
 	}
 
diff --git a/drivers/block/libata.c b/drivers/block/libata.c
index 90e9a43..65b0203 100644
--- a/drivers/block/libata.c
+++ b/drivers/block/libata.c
@@ -107,7 +107,7 @@
 
 	/* Total sectors of device  */
 	n_sectors = ata_id_n_sectors(id);
-	printf("Capablity: %d sectors\n\r", n_sectors);
+	printf("Capablity: %lld sectors\n\r", n_sectors);
 
 	printf ("id[49]: capabilities = 0x%04x\n"
 		"id[53]: field valid = 0x%04x\n"
diff --git a/drivers/rtc/ds1374.c b/drivers/rtc/ds1374.c
index f6bb296..1533b60 100644
--- a/drivers/rtc/ds1374.c
+++ b/drivers/rtc/ds1374.c
@@ -141,7 +141,7 @@
 		rel = -1;
 	}
 
-	DEBUGR ("Get RTC s since 1.1.1970: %d\n", time1);
+	DEBUGR ("Get RTC s since 1.1.1970: %ld\n", time1);
 
 	to_tm(time1, tm); /* To Gregorian Date */
 
@@ -176,7 +176,7 @@
 			tmp->tm_mday, tmp->tm_hour,
 			tmp->tm_min, tmp->tm_sec);
 
-	DEBUGR ("Set RTC s since 1.1.1970: %d (0x%02x)\n", time, time);
+	DEBUGR ("Set RTC s since 1.1.1970: %ld (0x%02lx)\n", time, time);
 
 	/* write to RTC_TOD_CNT_BYTEn_ADDR */
 	for (i = 0; i <= 3; i++) {
